#pragma once
#include<deque>
namespace ljw
{
	template<class T, class Cantainer=deque<T>>
	class queue
	{
	public:
	void push(const T& x)
	{
		_q.push_back(x);
	}
	void pop()
	{
		_q.pop_front();
	}
	T& back()
	{
		return _q.back();
	}
	T& front()
	{
		return _q.front();
	}
	bool empty()
	{
		return _q.empty();
	}
	size_t size()
	{
		return _q.size();
	}
	private:
		Cantainer _q;
	};
}
